The present invention relates to a distributed system connected to a network, and particularly to a highly reliable distributed system suitable for ensuring that message data is not damaged during send and receive processing of a message.
When a message is sent and received through a network, a network controller for implementing network communication by hardware and communication software for performing the network communication using the network controller are used. When data stored in an application program is sent, the data is written to the network controller through send protocol processing. When data is received, a message arrived at the network controller is written in the application program through receive protocol processing. As described above, the send and receive protocol processing between the application program and the network controller at sending and receiving data is processed using the communication software. When a bug exists in the communication software, when a register or a memory used by the communication software are damaged even if temporary, or when the content of data is changed by some reason, the content of data damaged by the send and receive protocol is sent or received. In order to ensure that the content of data is not damaged by the send and receive protocol, there is a method of using a plurality of versions of communication software implementing the same send and receive protocol processing created by a plurality of different persons. This method ensures that the content of data is not damaged by checking whether or not a result manipulated with send and receive protocol processing by one version of communication software agrees with a result manipulated with send and receive protocol processing by another version of communication software.
The above-mentioned prior art has a problem in that a plurality of versions of communication software need to be created.
An object of the present invention is to provide a means capable of ensuring by manipulating send and receive communication processing using one version of communication software that the content of data is not damaged.
In order to attain the above object, the present invention provides the following systems.
That is, the present invention provides the first highly reliable distributed system including a memory for storing an application program, a CPU for executing the application program stored in the memory, and a network controller for sending a sent message onto a network and receiving a received message transmitted on the network, the network controller being connected to the network, the network controller sending the sent message or receiving the received message while the CPU is executing the application program stored in the memory, the highly reliable distributed system comprises: a sent data memory means for storing sent data generated by the application program; a received message memory means for storing a received message transmitted on the network; a send protocol processing means for receiving sent data stored in the sent data memory means and executing predetermined send protocol processing to compose a sent message to be transferred to the network controller, using the sent data; a receive protocol processing means for receiving a sent message generated by the send protocol processing means, and executing predetermined receive protocol processing to extract a data part from the composed sent message; and a sent data comparing means for comparing the sent data stored in the sent data memory means with the data part extracted from the composed sent message by the receive protocol processing means.
In the second highly reliable distributed system according to the first system, the network controller is requested to send the sent message composed by the send protocol processing means only when a result of the comparing executed by the sent data comparing means indicates agreement.
Also, in the third highly reliable distributed system according to the first system, the network controller is requested to send the sent message just after the sent message is composed by the send protocol processing means.
Next, the present invention provides the fourth highly reliable distributed system including a memory for storing an application program, a CPU for executing the application program stored in the memory, and a network controller for sending a sent message onto a network and receiving a received message transmitted on the network, the network controller being connected to the network, the network controller sending the sent message or receiving the received message while the CPU is executing the application program stored in the memory, the highly reliable distributed system comprises: a sent data memory means for storing sent data generated by the application program; a received message memory means for storing a received message transmitted on the network; a receive protocol processing means for receiving the received message stored in the received message memory means, and executing predetermined receive protocol processing to extract a data part, which is to be written in the application program, from the received sent message; a send protocol processing means for receiving the data part extracted from the received sent message by the receive protocol processing means, and executing predetermined send protocol processing to compose a received message, using the extracted data part; and a received message comparing means for comparing the received message stored in the received message memory means with the received message composed by the send protocol processing means.
In the fifth highly reliable distributed system according to the fourth system, the data part extracted from the received message stored in the received message memory means is written in the application program only when a result of the comparing executed by the received message comparing means indicates agreement.
Also, in the sixth highly reliable distributed system according to the fourth system, the data part extracted from the received message stored in the received message memory means is written in the application program just after the data part is extracted by the receive protocol processing means.
Moreover, in the seventh highly reliable distributed system according to the fourth system, the send protocol processing means executes predetermined send protocol processing to composes a sent message, using a sent data generated by the application program, which is to be transmitted onto the network, and the receive protocol processing means executes predetermined receive protocol processing means to extracted a data part from the sent message composed by the send protocol processing means, using the sent data which is generated by the application program, the distributed system further including sent data comparing means for comparing the sent data stored in the sent data memory means with the data part which is extracted by the receive protocol processing means from the sent message composed by the send protocol processing means.
Further, in the eighth highly reliable distributed system according to the seventh system, the network controller is requested to send the sent message composed by the send protocol processing means only when a result of the comparing executed by the sent data comparing means indicates agreement, and the data part extracted from the received message stored in the received message memory means is written in the application program only when a result of the comparing executed by the received message comparing means indicates agreement.
Furthermore, in the ninth highly reliable distributed system according to the system seventh, the network controller is requested to send the sent message just after the sent message is composed by the send protocol processing means, and the data part extracted from the received message stored in the received message memory means is written in the application program only when a result of the comparing executed by the received message comparing means indicates agreement.
In addition, in the tenth highly reliable distributed system according to the seventh system, the network controller is requested to send the sent message composed by the send protocol processing means only when a result of the comparing executed by the sent data comparing means indicates agreement, and the data part extracted from the received message stored in the received message memory means is written in the application program only when a result of the comparing executed by the received message comparing means indicates agreement.
Also, in the eleventh highly reliable distributed system according to the system seventh, wherein the network controller is requested to send the sent message just after the sent message is composed by the send protocol processing means, and the data part extracted from the received message stored in the received message memory means is written in the application program just after a result of the comparing executed by the received message comparing means indicates agreement.
Moreover, in the twelfth highly reliable distributed system according to any one of the first, second, seventh, and tenth systems, the send protocol processing means comprises: an error detection coding means for receiving the sent data stored in the sent data memory means, executing predetermined error detection coding processing, and generating error-detection-coded sent data; and an error-detection-coded data send protocol processing means for receiving the error-detection-coded sent data generated by the error detection coding means, executing predetermined send protocol processing, and composing a sent message to be transferred to the network controller, and
the receive protocol processing means comprises: an error detection coding receive protocol means for receiving the sent message generated by the send protocol processing means, executing predetermined receive protocol processing, and extracting an error-detection-coded sent data part from the error-detection-coded sent message; and an error detection decoding processing means for receiving the error-detection-coded sent data part extracted by the error detection coding receive protocol processing means, executing predetermined error detection decoding processing to extract a sent data part from the error-detection-coded sent data part, and checking for that an error exists in the error-detection-coded send data part extracted from the error-detection-coded sent message.
Further, in the thirteenth highly reliable distributed system according to any one of the first, third, ninth, and tenth, the send protocol processing means comprises: an error detection coding means for receiving the sent data stored in the sent data memory means, executing predetermined error detection coding processing, and generating error-detection-coded sent data, using the sent data; and an error-detection-coded data send protocol processing means for receiving the error-detection-coded sent data generated by the error detection coding means, executing predetermined send protocol processing, composing a sent message to be transferred to the network controller, using the error-detection-coded sent data, and requesting the network controller to send the sent message, and
the receive protocol processing means comprises: an error detection coding receive protocol means for receiving the sent message composed by the send protocol processing means, executing predetermined receive protocol processing, and extracting an error-detection-coded sent data part from the error-detection-coded sent message; and an error detection decoding processing means for receiving the error-detection-coded sent data part extracted by the error detection coding receive protocol processing means, executing predetermined error detection decoding processing, extracting a sent data part from the error-detection-coded sent data part, and checking for that an error exists in the error-detection-coded sent data part in the error-detection-coded sent message.
Further still, in the fourteenth highly reliable distributed system according to any one of the fifth, seventh, and ninth systems, the receive protocol processing means comprises: an error detection coding receive protocol processing means for receiving the received message stored in the received message memory means, executing predetermined receive protocol processing, and extracting an error-detection-coded received data part from the received message; and an error detection decoding processing means for receiving the error-detection-coded received data part extracted by the error detection coding receive protocol processing means, executing predetermined error detection coding processing, extracting a received data part from the error-detection-coded received data part, which is transferred to the application program, and checking for that an error exists in the error-detection-coded received data part, and
the send protocol processing means comprises: an error detection coding means for receiving the received data part extracted by the receive protocol processing means, executing predetermined error detection coding processing, and generating error-detection-coded received data; and an error-detection-coded data send protocol processing means for receiving the error-detection-coded received data generated by the error detection coding means, executing predetermined send protocol processing, and composing a received message.
Furthermore, in the fifteenth highly reliable distributed system according to any one of the sixth, tenth, and eleventh systems, the receive protocol processing means comprises: an error detection coding receive protocol processing means for receiving the received message stored in the received message memory means, executing predetermined receive protocol processing, and extracting error-detection-coded received data part from the received message; and an error detection decoding processing means for receiving the error-detection-coded received data part extracted by the error detection coding receive protocol processing means, executing predetermined error detection coding processing, extracting a received data part to be transferred to the application program, checking for that an error exists in the error-detection-coded received data part, and transferring the received data part to the application program only when it is not detected that the error exists in the error-detection-coded received data part, and
the send protocol processing means comprises: an error detection coding means for receiving the received data part extracted by the receive protocol processing means, executing predetermined error detection coding processing, and generating error-detection-coded received data; and an error-detection-coded data send protocol processing means for receiving the error-detection-coded received data generated by the error detection coding means, executing predetermined send protocol processing, and composing a received message.
On the top of that, in the sixth highly reliable distributed system according to any one of the first to fifteenth systems, the high reliability distributed system is a vehicle control system.